1010 IF CASH < = 0 THEN GOSUB 100: VTAB 12: HTAB 30: PRINT "OUT OF CASH! You must": HTAB 30: PRINT "sell 50% of production": HTAB 30: PRINT "capacity to replenish cash ($1000).": HTAB 30
1020 IF CASH < = 0 THEN HTAB 30: PRINT "<RETURN> to sell:";: GET XX$:CASH = CASH +1000:PRDN = PRDN/2:PRDN = INT(PRDN *100 +.5)/100: IF CASH <0 THEN 1010: REM STILL NEGATIVE
1030 IF EMPL < = 0 THEN GOSUB 100: VTAB 12: HTAB 30: PRINT "You've lost all your people. You must ": POKE 1403,29: PRINT "spend 50% of your cash balance of $";CASH
1040 IF EMPL = 0 THEN HTAB 30: PRINT "to hire new people at 30% premium."
1050 IF EMPL = 0 THEN HTAB 30: PRINT "<RETURN> to hire new people.";: GET XX$:CASH = INT(CASH/2):EMPL = INT(CASH/(SAL *1.30)):DE(1) = DE(1) +CASH:NEMP = NEMP +EMPL
1060 IF PRDN <.5 THEN GOSUB 100: VTAB 12: HTAB 30: PRINT "You've gone into negative cash": HTAB 30: PRINT "for the last time. You're bankrupt!": HTAB 30: PRINT "<RETURN> for Directors Report.";: GET XX$:BK = 1
1070 RETURN
1080 :
1090 :
1100 : REM [ FLASH REPORTS ]
1110 FOR F = 1 TO 10:F$(F) = "":FL(F) = 0: NEXT
1120 FA = INT( RND(1) *20) +1: REM 1-20
1130 IF FA >10 THEN F$(1) = "FLASH Report: Industry is stable for":F$(2) = "the current period.": GOTO 1240
1140 IF FA = 1 THEN FL(1) = INT( RND(1) *100) +125:F$(1) = "FLASH Report: FIRE in the plant. The":F$(2) = "production is cut by 50% while repairs":F$(3) = "are made. The cost to restore your":F$(4) = "production is: " + STR$(FL(1)): GOTO 1240
1150 IF FA = 2 THEN FL(2) = INT( RND(1) *20) +10:F$(1) = "FLASH Report: Transportation shutdown!":F$(2) = STR$(FL(2)) +"% of sales cannot be shipped. Your":F$(3) = "customers cancel orders!": GOTO 1240
1160 IF FA = 3 THEN FL(3) = INT( RND(1) *15) +20:F$(1) = "FLASH Report: Major government order!":F$(2) = "Entire inventory sells out at $" + STR$(FL(3)): GOTO 1240
1170 IF FA = 4 THEN FL(4) = 1:F$(1) = "FLASH Report: Outstanding parts buy!":F$(2) = "Manufacturing cost drops by $1.00!": GOTO 1240
1180 IF FA = 5 THEN FL(5) = 1:F$(1) = "FLASH Report: New Benefits Plan is":F$(2) = "introduced. Cost per employee goes":F$(3) = "up by 25% but productivity rises by":F$(4) = "1(000) units per person.": GOTO 1240
1190 IF FA = 6 THEN FL(6) = (( RND(1) *150) +100)/100:AL = FL(6): GOSUB 160:F$(1) = "FLASH Report: Quality defects require":F$(2) = "rework with added cost of $" +AL$:FL(6) = VAL(AL$):F$(3) = "per unit.": GOTO 1240
1200 IF FA = 7 THEN FL(7) = INT( RND(1) *15) +10:F$(1) = "FLASH Report: Layoff in neighboring":F$(2) = "plant. " + STR$(FL(7)) +" more employees are hired":F$(3) = "and ready to produce next quarter.": GOTO 1240
1210 IF FA = 8 THEN FL(8) = INT( RND(1) *11) +5:F$(1) = "FLASH Report: Competitor raids your":F$(2) = "company and " + STR$(FL(8)) +" employees resign.": GOTO 1240
1220 IF FA = 9 THEN FL(9) = INT( RND(1) *11) +20:F$(1) = "FLASH Report: Widgets wins advertising":F$(2) = "award! Market demand rises by " + STR$(FL(9)) +"%.": GOTO 1240
1230 IF FA = 10 THEN FL(10) = 1:F$(1) = "FLASH Report: Major order received!":F$(2) = "Total inventory can be sold at $29.95":F$(3) = "next period with no advertising expense.": GOTO 1240
1240 VTAB 12: FOR F = 1 TO 5: HTAB 30: PRINT F$(F): NEXT
1250 VTAB 18: HTAB 30: INVERSE : PRINT "<RETURN> TO CONTINUE:";: NORMAL : GET XX$: VTAB 18: POKE 1403,0: CALL -868: VTAB 1: POKE 1403,0
1260 RETURN
1270 :
1280 :
1290 : REM [ CALCULATE BUSINESS INDEXES ]
1300 :
1310 : REM [PRICE SENSITIVITY]
1320 X = 100: FOR F = 1 TO 6:PI(F) = X: IF F <3 THEN X = X -15
1330 IF F > = 3 THEN X = X -10
1340 NEXT
1350 TEMP = INT( RND(1) *7) +1:TEMP = TEMP +5: REM RANGE 5-12
1410 TEMP = INT( RND(1) *5) +2: REM RANDOM LINE # 2-6 FOR MARKET WINDOW
1420 PI(TEMP) = 50 + INT( RND(1) *50)
1430 :
1440 : REM ADVTSG INDEX
1450 X = 10: FOR F = 2 TO 8:AI(F) = X: IF F <5 THEN X = X +20
1460 IF F >4 THEN X = X +10
1470 NEXT
1480 TEMP = INT( RND(1) *50) +75: REM RANGE 75-124
1490 AD(4) = TEMP
1500 AD(1) = 25:AD(8) = 200
1510 AD(2) = 25 + INT((AD(4) -AD(1))/2)
1520 AD(3) = INT((AD(4) -AD(2))/2) +AD(2)
1530 AD(6) = INT((AD(8) -AD(4))/2) +AD(4)
1540 AD(5) = INT((AD(6) -AD(4))/2) +AD(4)
1550 AD(7) = INT((AD(8) -AD(6))/2) +AD(6)
1560 TEMP = INT( RND(1) *6) +2: REM RANDOM LINE # 2-7 FOR MARKET WINDOW
1570 AI(TEMP) = 50 + INT( RND(1) *50)
1580 :
1590 : REM [R&D INDEX]
1600 AMT = 30
1610 FOR F = 1 TO 5
1620 TEMP = (F *25) +25
1630 RD(F) = TEMP +RN
1640 RN = INT( RND(1) *25) +1:RD(F) = RD(F) +RN
1650 RI(F) = AMT:AMT = AMT -15
1660 NEXT F
1670 :
1680 : REM [PRICE/AD IMPACT]
1690 PAD = INT( RND(1) *30) +40:APR = 100 -PAD
1700 RETURN
1710 :
1720 :
1730 : REM [MARKET REPORT]
1740 RP = 0
1750 VTAB 17: CALL -868
1760 VTAB 18: CALL -868: IF (MKT *1.25) >CASH +20 THEN PRINT "You don't have enough cash to buy the Market Report. <RETURN> to continue:";: GET XX$:MKT$ = "N": GOTO 1780
1770 POKE 1403,0: VTAB 18: CALL -868: PRINT "Do you wish to purchase the Market Report for $";MKT;: PRINT "K? Y/N:";: GET MKT$: PRINT MK$;: IF MKT$ < >"Y" AND MKT$ < >"N" AND MKT$ < >"y" AND MKT$ < >"n" THEN 1770
1780 VTAB 18: POKE 1403,0: CALL -868
1790 IF MKT$ = "Y" OR MKT$ = "y" THEN RP = MKT
1800 MKT = MKT *1.25:MKT = INT(MKT)
1810 IF MKT$ < >"Y" AND MKT$ < >"y" THEN RETURN
1820 POKE 1403,0: VTAB 10: CALL -868: IF MKT$ < >"Y" AND MKT$ < >"y" THEN RETURN
2090 IF DE(4) >(EMPL *PRDN) THEN VTAB 18: PRINT "You don't have enough employees to produce: ";DE(4);: PRINT ". Press RETURN:";: GET XX$: POKE 1403,0: VTAB 18: CALL -868: GOTO 2030
2100 HIT = 0: FOR F = 1 TO 5: IF DE(F) <0 THEN HIT = F
2110 NEXT
2120 IF HIT >0 THEN VTAB 18: PRINT "You cannot enter a negative number for decisions. Press RETURN:";: GET XX$: POKE 1403,0: VTAB 18: CALL -868: GOTO 2030
2130 IF DE(1) = 0 OR DE(2) = 0 OR DE(4) = 0 THEN VTAB 18: PRINT "You must use a positive number for Payroll, Price & Prod'n. Press RETURN:";: GET XX$: POKE 1403,0: VTAB 18: CALL -868: GOTO 2030
2140 IF (DE(1) +DE(3) +DE(5) +RP) >CASH THEN VTAB 18: PRINT "You don't have enough cash to pay for these decisions. Press RETURN:";: GET XX$: POKE 1403,0: VTAB 18: CALL -868: GOTO 2030
2150 POKE 1403,0: VTAB 18: INVERSE : PRINT "<RETURN> TO ACCEPT... R TO REENTER:";: NORMAL : GET XX$: IF XX$ < > CHR$(13) AND XX$ < >"R" AND XX$ < >"r" THEN 2150
2160 POKE 1403,0: VTAB 18: CALL -868
2170 IF XX$ = "R" OR XX$ = "r" THEN VTAB 18: CALL -868: GOTO 2030
2550 PRINT : IF RVW > = 7 THEN PRINT "You've done an excellent job in running Widgets Corp. We'd like to hire you": PRINT "for another term with a bonus of $";:AL = INT(AV/2): GOSUB 130: PRINT AL$;",000!"
2560 IF RVW > = 4 AND RVW <7 THEN PRINT "You've done an adequate job with the company. We're willing to renew your": PRINT "contract for another term, but we suggest that you pay more attention": PRINT "to the market reports."
2570 IF RVW <4 THEN PRINT "You've really done a pitiful job with the assets and resources of the company.": PRINT "We won't be asking you to renew your contract...and please close the door": PRINT "on your way out."
2660 HTAB 30: PRINT "* A business simulation *": HTAB 30: PRINT "* by Alexander Laird *": HTAB 30: PRINT "*************************"
2670 VTAB 10: HTAB 30: PRINT " Copyright 1989": HTAB 29: PRINT " by MindCraft Publ. Corp.": PRINT : HTAB 25: PRINT "<RETURN> TO BEGIN...S)KIP COMMENTS:";: GET XX$: HOME : IF XX$ = "S" OR XX$ = "s" THEN 3080
2680 PRINT "CONGRATULATIONS! You have been elected President of Widget Corporation. In": PRINT "this important job, you'll select a contract term for decision-making and then"
2690 PRINT "make a series of management decisions each quarter:"
2700 PRINT : PRINT " Payroll ..... $8(000) per employee per quarter"
2710 PRINT " Price ....... $9.95 to $29.95"
2720 PRINT " Advertising.. $0 to 200(000)"
2730 PRINT " Production... Depends on the number of employees and their unit productivity"
2740 PRINT " R&D.......... $0 to $200(000)"
2750 PRINT : PRINT "Widgets are high-tech appliances found in homes and offices. Although they": PRINT "have a low cost, they take expensive, skilled labor. If you pay less than the"
2760 PRINT "$8(000) PER EMPLOYEE per quarter, some employees will leave for other jobs. If": PRINT "you pay more, then new employees will join the company and begin producing in"
2770 PRINT "the following quarter.": PRINT : PRINT "Each employee can initially produce 2(000) Widgets per quarter. However other": PRINT "industry factors such as technology advances, strikes, and damaged goods can"
2780 PRINT "affect manufacturing cost and productivity."
2790 PRINT : PRINT "<RETURN> for next page:";: GET XX$: HOME : PRINT "When you start a new quarter, a variety of price, cost, advertising, and R&D"
2800 PRINT "tables are automatically created. These tables are used with your decisions to": PRINT "to produce the company performance results."
2810 PRINT : PRINT "For example: there are built-in advertising and pricing demand tables. The": PRINT "lower your price, the more you'll sell. But be careful not to sell below cost"
2820 PRINT "or you'll lose money. And if you price above $29.95, you won't sell a single": PRINT "Widget. Similarly, your advertising expenditures affect the percentage of your"
2830 PRINT "inventory that is sold each quarter.":
2840 PRINT : PRINT "You can buy a special Executive Market Report to display the index tables for": PRINT "the current quarter. It costs $50(000) and the price rises by 25% each quarter."
2850 PRINT : PRINT "Research & Development expense affects the unit cost impact curve. If you spend": PRINT "more, your cost will go down. Spend less and the cost rises. You can affect"
2860 PRINT "the unit cost (up or down) by up to 30% per quarter.": PRINT : PRINT "There is also an inflation factor that affects the payroll expense between"
2870 PRINT "of 1% to 3% per quarter. If you don't keep pace with inflation in your payroll": PRINT "then more employees will leave the company."
2880 PRINT : PRINT "<RETURN> for next page:";: GET XX$
2890 HOME : PRINT "Here's an example of how the demand curves work using the Price Index:": PRINT : PRINT " Price Index R&D Index Price/Ad Mix"
2920 PRINT : PRINT "With this index, if you set the price at $18.20 to $20.94, you'll sell 70%": PRINT "of the inventory that is affected by price. In addition, the Price/Ad Index"
2930 PRINT "shows the relative influence of price and advertising for the quarter. In the": PRINT "quarter shown, pricing affects 60% of sales and advertising affects only 40%."
2940 PRINT : PRINT "With the R&D Index, if you spend $1 to 117K your unit cost will rise 30%. If": PRINT "you spend $145 to 161K, your unit manufacturing cost will be reduced by 15%."
2950 PRINT : PRINT "These indexes as well as an advertising index are shown when you purchase the": PRINT "special Market Report. The information can have a dramatic effect on results."
2960 PRINT : PRINT "<RETURN> for next page:";: GET XX$
2970 HOME : PRINT "You can also be affected by strikes if you have excessive profits. When you": PRINT "have a strike, it costs 50% of the current quarter profits to settle it, plus"
2980 PRINT "double the normal inflation effect in salary increases."
2990 PRINT : PRINT "Widget's market has several advertising and pricing 'holes' where special": PRINT "promotions may sell out inventory at a relatively high price. But you'll have"
3000 PRINT "to experiment to find them."
3010 PRINT : PRINT "When you have entered your decisions for Payroll, Price, Advertising, Research": PRINT "and Production, your results for the current quarter will be displayed."
3020 PRINT : PRINT "Each quarter, your results will also be affected by FLASH news reports that": PRINT "can be windfalls or setbacks with: major orders, fire, advertising awards, etc."
3030 PRINT : PRINT "At the end of your term of office, you'll receive a performance review by the": PRINT "Board of Directors based on your profitability, return on assets, and employee"
3040 PRINT "management skills.": PRINT : PRINT "Enjoy! And GOOD LUCK!": PRINT : PRINT "<RETURN> to begin:";: GET XX$
3090 HOME : VTAB 12: HTAB 20: PRINT "Welcome to Widget Corp. Mr/Ms President!": HTAB 20: INPUT "How many Quarters will you serve? (2-12):";TM$:TM = VAL(TM$): IF TM <2 THEN 3090